from rest_framework.generics import ListAPIView, CreateAPIView
from meiduo_admin.utils import MyPageNumberPagination
from .serializers import UserViewModelSerializer
from users.models import User


# 获取用户管理页
class UserView(ListAPIView, CreateAPIView):
    # 设置自定义分页
    pagination_class = MyPageNumberPagination
    # 获取通用序列器
    serializer_class = UserViewModelSerializer
    # 获取通用数据源
    # queryset = User.objects.order_by('id').all()

    # 用户过滤查询(根据用户名模糊查询)--->对数据源操作,判断查询关键字:有返回对应数据,无返回全部数据
    # 重写数据源
    def get_queryset(self):
        # 获取查询关键字keyword
        keyword = self.request.query_params.get("keyword")
        # 判断数据源中是否有查询的关键字
        if keyword:
            # 返回查询结果
            return User.objects.filter(username__contains=keyword).order_by("id").all()
        else:
            # 返回全部数据
            return User.objects.order_by("id").all()
